import java.util.Random;

import static java.lang.System.out;

public class Reverse2dArray {
	static int[][] a; // 存放两位随机整数的int二维数组a
	
	/**
	 * 构造方法，初始化数组a，r和c分别是行数和列数
	 */
	public Reverse2dArray(int r, int c){
		//TODO: 补充完成
        a= new int[r][c];
	}
	
	/**
	 * 构造随机数组
	 */
	public void buildRandArray(){
		Random random = new Random();
		for(int i = 0; i < a.length; i++) {
			for (int j = 0; j < a[i].length; j++)
				a[i][j] = random.nextInt(100);
		}
	}
	
	/**
	 * 转置本类成员的二维数组a，并返回一个新的二维数组
	 * @return
	 */
	public int[][] reverse2dArray(){
		//TODO:补充完成
     int row=a.length;
     int col=a[0].length;
     int [][]result=new int[col][row];
     for(int i=0;i<row;i++){
	 for(int j=0;j<col;j++){
      result[j][i]=a[i][j];
	    }
      }
  return result;
	}

	
	/* 显示二维数组 */
	public void showArray(int[][] c){
		out.printf("==========%2d×%-2d==========%n", c.length, c[0].length);
		
		for(int[] cr : c){
			for(int cc : cr){
				out.printf("%5d ", cc);
			}
			out.println();
		}
		
		out.println("========================");
	}
	
	public static void main(String[] args) {
		int row = 3, col = 4;		
		Reverse2dArray me = new Reverse2dArray(row, col);
//		创建随机生成数组
		me.buildRandArray();
		me.showArray(a); // 显示原数组

		int[][] r = me.reverse2dArray();
		me.showArray(r); // 显示转置的数组
	}
}
